/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"5E5AB6C2-9EE2-4042-B07F-6790CD199A15",variableType:4}
 */
var fAbierto = 0;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"DB48C2EF-46D4-4101-B900-E04760F10593",variableType:4}
 */
var fAsientoCierre = 0;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"FE5276F5-6F71-48EF-9D84-F2090035E387",variableType:4}
 */
var fcuenta;

/**
 * @type {String}
 *
 * @properties={typeid:35,uuid:"AF7515C7-3290-4B5B-AE3C-1B501AEA4BA5"}
 */
var form_impresion = 'balance_2_imp';

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"E7696731-41AC-4284-A46C-E80E9C577281",variableType:4}
 */
var panio_hasta = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"EDBE15E6-BDB8-4A8D-B7A0-734414850240",variableType:4}
 */
var pcentro = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"E6F6FC47-7C76-476E-8F02-9D0B30F0C12B",variableType:4}
 */
var pdivision = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"FC537831-81BA-4197-8364-675BE05937D2",variableType:4}
 */
var pforma = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"71ED0B45-A8A8-4F53-9866-52693ECAAD2D",variableType:8}
 */
var pmes_hasta = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"DB17814B-F392-4F7C-B45F-75AA624AD79C",variableType:4}
 */
var ptarea = 1;

/**
 * @properties={typeid:24,uuid:"DD1180E6-03AE-4125-B5CA-00C4A8BBE765"}
 * @AllowToRunInFind
 */
function onShow(firstShow, event) {
	globals.gvarios = 3 	
	controller.loadRecords(null)
	pdivision = null
	pcentro   = null
	elements.fld_abierto.visible = false
	elements.lbl_abierto.visible = false
	elements.lbl_cierre.visible  = false
	elements.fld_cierre.visible  = false
	elements.pdivision.visible   = false
	elements.pcentro.visible     = false
	elements.botcen.visible      = false
	elements.botdiv.visible      = false
}

/**
 * @properties={typeid:24,uuid:"6A5E79DA-BA15-436B-8D01-6B44F216BE2F"}
 */
function onAction(event) {
	//ptarea 1-Balance gral / 2-Division / 3-Centro
	              
	var query = 'select cuentas_id,division,centro,rubro,capitulo,subcapitulo,cuenta,subcuenta,debe_pes,debe_dol,haber_pes,haber_dol,anio,mes,saldo_pes_cierre,saldo_dol_cierre FROM saldos INNER JOIN cuentas ON saldos.cuentas_id = cuentas.cuenta_id '  

	if (pcentro != null)
	{
		var args = new Array()
		args[0] = globals.gUservID
		args[1] = pcentro
		args[2] = panio_hasta
		args[3] = globals.gUservID
		args[4] = pcentro
		args[5] = panio_hasta
		args[6] = pmes_hasta
		query += 'where saldos.empresa = ? and centro = ? and anio < ? or saldos.empresa = ? and centro = ? and anio = ? and mes <= ?'
	}
	else
	{
		if (pdivision != null)
		{
			var args = new Array()
			args[0] = globals.gUservID
			args[1] = pdivision
			args[2] = panio_hasta
			args[3] = globals.gUservID
			args[4] = pdivision
			args[5] = panio_hasta
			args[6] = pmes_hasta
			query += 'where saldos.empresa = ? and division = ? and anio < ? or saldos.empresa = ? and division = ? and anio = ? and mes <= ?'
		}
		else
		{
			var args = new Array()
			args[0] = globals.gUservID
			args[1] = panio_hasta
			args[2] = globals.gUservID
			args[3] = panio_hasta
			args[4] = pmes_hasta
			query += 'where saldos.empresa = ? and anio < ? or saldos.empresa = ? and anio = ? and mes <= ?'
		}	
	}
	//Depende de la tarea
	if (ptarea == 2)
	{	
		query += ' order by capitulo,subcapitulo,rubro,cuenta desc,subcuenta,division,centro'
	}
	else
	{
		query += ' order by capitulo,subcapitulo,rubro,cuenta desc,subcuenta,centro,division'
	}
	var max = -1
	// con esto trae todo, si pusiera un valor trae segun dicho valor
	var ds_saldos = databaseManager.getDataSetByQuery('contable',query,args,max)
	var ctos = ds_saldos.getMaxRowIndex()

	if (ctos == 0)
	{
		globals.DIALOGS.showWarningDialog("Aviso","Sin movimientos","Ok")
		return 				
	}
	switch( ptarea )
	{
		case 1: 
			var ds_balance = BalanceGral(ds_saldos,ctos)
			var $nombre_ds = 'balance_gral'
			break
		case 2: 
			var ds_balance = BalanceDiv(ds_saldos,ctos)
			var $nombre_ds = 'balance_div'
			break
		case 3:
			var ds_balance = BalanceCen(ds_saldos,ctos)
			var $nombre_ds = 'balance_div'
			break
		default:
			var ds_balance = BalanceGral(ds_saldos,ctos)
			var $nombre_ds = 'balance_gral'
	}	
	if (pforma == 1)
	{
		var frm  = solutionModel.getForm('balance_sf')
		var frm2 = solutionModel.getForm('balance_sf_imp')
		//form_impresion = 'balance_sf_imp'
		var x = 770
	}
	else
	{
		var frm  = solutionModel.getForm('balance_sys')
		var frm2 = solutionModel.getForm('balance_sys_imp')
		//form_impresion = 'balance_sys_imp'
		var x = 850
	}
	
	elements.tabs_220.removeAllTabs()
	var $nClon = 'balance_2'
	history.removeForm($nClon)
	solutionModel.removeForm($nClon)
	var $frm = solutionModel.cloneForm($nClon,frm)
	
	var $nClon_imp = 'balance_2_imp'
	history.removeForm($nClon_imp)
	solutionModel.removeForm($nClon_imp)
	var $frm2 = solutionModel.cloneForm($nClon_imp,frm2)
	
	var $fld_name = 'saldo_cuenta'
	//var $fld2 = frm2.getField($fld_name)
	if(ptarea == 1)
	{
		var $tipos  = new Array(JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.TEXT,JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.INTEGER)
		var $fld = frm.getField($fld_name)
		if (!$fld)
		{
			var $fld = $frm.newField('saldo_cuenta',JSField.TEXT_FIELD,x,0,90,20)
			$fld.name = $fld_name
			$fld.titleText = 'Saldo Cuenta'
			$fld.editable = false
			$fld.format = "###,###.00"
			$fld.horizontalAlignment = SM_ALIGNMENT.RIGHT	
		}
		$fld.printable = true
	}
	else
	{
		var $tipos  = new Array(JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.TEXT,JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.INTEGER)
	}

	var dSource = ds_balance.createDataSource($nombre_ds,$tipos)
	$frm.dataSource  = dSource
	$frm2.dataSource = dSource
	
	frm.styleName = gusuario_to_rel_solucion_usuario.estilo
	frm2.styleName = gusuario_to_rel_solucion_usuario.estilo
	
	forms[$frm.name].controller.recreateUI()
	forms[$frm.name].controller.sort("capitulo asc, subcapitulo asc, rubro asc, cuenta asc,subcuenta asc")

	forms[$frm2.name].controller.recreateUI()
	forms[$frm2.name].controller.sort("capitulo asc, subcapitulo asc, rubro asc, cuenta asc,subcuenta asc")

	elements.tabs_220.addTab(forms[$frm.name])
	
/*	TOTALES DE BALANCE - LO SACAMOS 30/01/2015
 * 
 * var ds_total = BalanceTot(ds_saldos,ctos)
	var frmt  = solutionModel.getForm('balance_tot')
						//		'capitulo',			'subcapitulo','rubro','texto','total'
	var $tipos  = new Array(JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.TEXT,JSColumn.NUMBER)	
	var dSource = ds_total.createDataSource('totales',$tipos)
	frmt.dataSource  = dSource
	frmt.styleName = gusuario_to_rel_solucion_usuario.estilo
	forms.balance_tot.controller.recreateUI()
	forms.balance_tot.controller.sort("capitulo asc, subcapitulo asc, rubro asc")
	elements.tabs_330.removeAllTabs()
	elements.tabs_330.addTab(forms.balance_tot)*/
}

/**
 * @properties={typeid:24,uuid:"926D616B-D02C-4D67-BDD6-843A1B160BD9"}
 */
function onAction_boton(event) {
	controller.sort("cuentas_id asc")
}

/**
 * @properties={typeid:24,uuid:"9525B465-E34D-402D-8B16-19CC3C456485"}
 */
function BalanceGral(ds_saldos,cant) {
	
	var nCuentas_id 	= ds_saldos.rowColumns.indexOf("cuentas_id",0)  +1
	var nRubro 			= ds_saldos.rowColumns.indexOf("rubro",0)       +1
	var nCapitulo       = ds_saldos.rowColumns.indexOf("capitulo",0)    +1
	var nSubcapitulo    = ds_saldos.rowColumns.indexOf("subcapitulo",0) +1
	var nCuenta 		= ds_saldos.rowColumns.indexOf("cuenta",0)      +1
	var nSubcuenta      = ds_saldos.rowColumns.indexOf("subcuenta",0)   +1
	var nDebe_pes       = ds_saldos.rowColumns.indexOf("debe_pes",0)    +1
	var nDebe_dol       = ds_saldos.rowColumns.indexOf("debe_dol",0)    +1
	var nHaber_pes      = ds_saldos.rowColumns.indexOf("haber_pes",0)   +1
	var nHaber_dol      = ds_saldos.rowColumns.indexOf("haber_dol",0)   +1
	var nAnio           = ds_saldos.rowColumns.indexOf("anio",0)        +1
	var nMes            = ds_saldos.rowColumns.indexOf("mes",0)         +1
	var nSaldo_pes_cierre = ds_saldos.rowColumns.indexOf("saldo_pes_cierre",0) +1
	var nSaldo_dol_cierre = ds_saldos.rowColumns.indexOf("saldo_dol_cierre",0) +1
	
	var fcuenta_id   = ds_saldos.getValue(1,nCuentas_id)		
	var frubro       = ds_saldos.getValue(1,nRubro)				
	var fcapitulo    = ds_saldos.getValue(1,nCapitulo)			
	var fsubcapitulo = ds_saldos.getValue(1,nSubcapitulo)		
	var $rubro       = ds_saldos.getValue(1,nRubro)						
	var $capitulo    = ds_saldos.getValue(1,nCapitulo)					
	var $subcapitulo = ds_saldos.getValue(1,nSubcapitulo)
	
	fcuenta = (fcapitulo * 1000000) + (fsubcapitulo * 100000) +
                  (frubro * 10000) + ds_saldos.getValue(1,nCuenta)    
  
    var $cta_aux    = fcuenta 
    var $subcta_aux = ds_saldos.getValue(1,nSubcuenta)
    
    var $cols = new Array('division','centro','saldo_anterior','movim_debe','movim_haber','saldo_actual','cuenta_busca','cuenta','subcuenta','rubro','capitulo','subcapitulo','legajo','total_rubro','total_subcapitulo','total_capitulo','saldo_cuenta','cuentas_id')
    var ds_balance = databaseManager.createEmptyDataSet(0,$cols)
    
    //Saldos Cuenta
    var $cta_debe_pes   = 0
    var $cta_debe_dol   = 0
    var $cta_haber_pes  = 0
    var $cta_haber_dol  = 0
    //Saldos Subcuenta
    var $Scta_debe_pes  = 0
    var $Scta_debe_dol  = 0
    var $Scta_haber_pes = 0
    var $Scta_haber_dol = 0
    //Movimientos Cuenta
    var $cta_mov_d_pes  = 0
	var $cta_mov_d_dol  = 0
	var $cta_mov_h_pes  = 0
	var $cta_mov_h_dol  = 0
	//Movimientos Subcuenta
	var $Scta_mov_d_pes = 0
	var $Scta_mov_d_dol = 0
	var $Scta_mov_h_pes = 0
	var $Scta_mov_h_dol = 0
	//Totales rubro, capitulo y subcapitulo (para impresion)
	var $tot_cap_pes = 0
    var $tot_sub_pes = 0
    var $tot_rub_pes = 0
    var $tot_cap_dol = 0
    var $tot_sub_dol = 0
    var $tot_rub_dol = 0
    
    var $tiene_scta = 0
    
	var $debe_pes	
	var $haber_pes	
	var $debe_dol	
	var $haber_dol 
	var $cierre_dol
	var $cierre_pes
	
	for (var i = 1 ; i <= cant ; i++)
	{
		//ds_saldos.rowIndex = i
		$debe_pes	= ds_saldos.getValue(i,nDebe_pes)
		$haber_pes	= ds_saldos.getValue(i,nHaber_pes)
		$debe_dol	= ds_saldos.getValue(i,nDebe_dol)
		$haber_dol  = ds_saldos.getValue(i,nHaber_dol)
		$cierre_dol = ds_saldos.getValue(i,nSaldo_dol_cierre)
		$cierre_pes = ds_saldos.getValue(i,nSaldo_pes_cierre)
		if (fAsientoCierre == 1)
		{
			if ($cierre_pes < 0)
			{
				$haber_pes -= $cierre_pes
			}
			else
			{
				$debe_pes += $cierre_pes
			}
			if ($cierre_dol < 0)
			{
				$haber_dol -= $cierre_dol
			}
			else
			{
				$debe_dol += $cierre_dol
			}
		}
		
		frubro       = ds_saldos.getValue(i,nRubro)						
		fcapitulo    = ds_saldos.getValue(i,nCapitulo)					
		fsubcapitulo = ds_saldos.getValue(i,nSubcapitulo)				

		fcuenta = (fcapitulo * 1000000) + (fsubcapitulo * 100000) + (frubro * 10000) + ds_saldos.getValue(i,nCuenta)
	
		//CUENTA IGUAL
		if ($cta_aux == fcuenta )												
		{
			//SUMO TOTALES EN RUBRO CAPITULO Y SUBCAPITULO
			$tot_cap_pes += $debe_pes - $haber_pes
		    $tot_sub_pes += $debe_pes - $haber_pes
		    $tot_rub_pes += $debe_pes - $haber_pes
		    $tot_cap_dol += $debe_dol - $haber_dol
		    $tot_sub_dol += $debe_dol - $haber_dol
		    $tot_rub_dol += $debe_dol - $haber_dol 
			
			//SUMO TOTALES EN LA CUENTA
			$cta_debe_pes  += $debe_pes
			$cta_debe_dol  += $debe_dol
			$cta_haber_pes += $haber_pes
			$cta_haber_dol += $haber_dol
			
			if (ds_saldos.getValue(i,nAnio) == panio_hasta && ds_saldos.getValue(i,nMes) == pmes_hasta)
			{
				$cta_mov_d_pes += $debe_pes		
				$cta_mov_d_dol += $debe_dol		
				$cta_mov_h_pes += $haber_pes		
				$cta_mov_h_dol += $haber_dol				
			}

			//SUBCUENTA IGUAL
			if ($subcta_aux != 0 && $subcta_aux == ds_saldos.getValue(i,nSubcuenta))
			{
				//SUMO TOTALES EN LA SUBCUENTA
				$Scta_debe_pes  += $debe_pes 
				$Scta_debe_dol  += $debe_dol 
				$Scta_haber_pes += $haber_pes
				$Scta_haber_dol += $haber_dol
				
				if (ds_saldos.getValue(i,nAnio) == panio_hasta && ds_saldos.getValue(i,nMes) == pmes_hasta)
				{
					$Scta_mov_d_pes += $debe_pes		
					$Scta_mov_d_dol += $debe_dol		
					$Scta_mov_h_pes += $haber_pes		
					$Scta_mov_h_dol += $haber_dol					
				}
			}
			else
			{
				//CORTE POR LA SUBCUENTA
				if ($subcta_aux != ds_saldos.getValue(i,nSubcuenta))
				{
					//DOY DE ALTA UNA SUBCUENTA E INICIALIZO
					altaDS(ds_balance,$Scta_debe_pes,$Scta_haber_pes,$Scta_debe_dol,$Scta_haber_dol,$cta_aux,$subcta_aux,$Scta_mov_d_pes,$Scta_mov_d_dol,$Scta_mov_h_pes,$Scta_mov_h_dol,$rubro,$capitulo,$subcapitulo,null,null,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,$tiene_scta,fcuenta_id) 		
					fcuenta_id      = ds_saldos.getValue(i,nCuentas_id)
					$subcta_aux     = ds_saldos.getValue(i,nSubcuenta)
					$Scta_debe_pes  = $debe_pes 
				    $Scta_debe_dol  = $debe_dol 
				    $Scta_haber_pes = $haber_pes
				    $Scta_haber_dol = $haber_dol
	    			if (ds_saldos.getValue(i,nAnio) == panio_hasta && ds_saldos.getValue(i,nMes) == pmes_hasta)
					{
					    $Scta_mov_d_pes = $debe_pes	
						$Scta_mov_d_dol = $debe_dol	
						$Scta_mov_h_pes = $haber_pes
						$Scta_mov_h_dol = $haber_dol
					}
					else
				    {
						$Scta_mov_d_pes = 0
						$Scta_mov_d_dol = 0
						$Scta_mov_h_pes = 0
						$Scta_mov_h_dol = 0
				    }
				}
			}
		}
		else 
		{
			$tiene_scta = 0
			//CORTE POR LA CUENTA
			if ($subcta_aux != 0)
			{
				//DOY DE ALTA UNA SUBCUENTA E INICIALIZO
				altaDS(ds_balance,$Scta_debe_pes,$Scta_haber_pes,$Scta_debe_dol,$Scta_haber_dol,$cta_aux,$subcta_aux,$Scta_mov_d_pes,$Scta_mov_d_dol,$Scta_mov_h_pes,$Scta_mov_h_dol,$rubro,$capitulo,$subcapitulo,null,null,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,$tiene_scta,fcuenta_id)
				$tiene_scta = 1
			}
			//DOY DE ALTA UNA CUENTA E INICIALIZO		
			altaDS(ds_balance,$cta_debe_pes,$cta_haber_pes,$cta_debe_dol,$cta_haber_dol,$cta_aux,0,$cta_mov_d_pes,$cta_mov_d_dol,$cta_mov_h_pes,$cta_mov_h_dol,$rubro,$capitulo,$subcapitulo,null,null,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,$tiene_scta,fcuenta_id)

			//VERIFICO RUBRO, SUBCAPITULO Y CAPITULO
			if (fcapitulo == $capitulo)
			{
				$tot_cap_pes += $debe_pes - $haber_pes
		   		$tot_cap_dol += $debe_dol - $haber_dol
				if (fsubcapitulo == $subcapitulo)
				{
					$tot_sub_pes += $debe_pes - $haber_pes
					$tot_sub_dol += $debe_dol - $haber_dol
					if (frubro == $rubro)
					{
						$tot_rub_pes += $debe_pes - $haber_pes
						$tot_rub_dol += $debe_dol - $haber_dol
					}
					else
					{
						//ALTA RUBRO 
						$tot_rub_pes = $debe_pes - $haber_pes
					    $tot_rub_dol = $debe_dol - $haber_dol
						$rubro 		 = frubro
					}				
				}
				else
				{
					//ALTA SUBCAPITULO
					$tot_sub_pes = $debe_pes - $haber_pes
					$tot_sub_dol = $debe_dol - $haber_dol
					$subcapitulo = fsubcapitulo
					$tot_rub_pes = $debe_pes - $haber_pes
				    $tot_rub_dol = $debe_dol - $haber_dol
					$rubro 		 = frubro
				}
			}
			else
			{
				//ALTA CAPITULO
				$tot_cap_pes = $debe_pes - $haber_pes
				$tot_cap_dol = $debe_dol - $haber_dol
				$capitulo 	 = fcapitulo
				$tot_sub_pes = $debe_pes - $haber_pes
				$tot_sub_dol = $debe_dol - $haber_dol
				$subcapitulo = fsubcapitulo
				$tot_rub_pes = $debe_pes - $haber_pes
			    $tot_rub_dol = $debe_dol - $haber_dol
				$rubro 		 = frubro
			} 		
			
			//INICALIZO VARIABLES
			fcuenta_id   = ds_saldos.getValue(i,nCuentas_id)						
			frubro       = ds_saldos.getValue(i,nRubro)						
			fcapitulo    = ds_saldos.getValue(i,nCapitulo)					
			fsubcapitulo = ds_saldos.getValue(i,nSubcapitulo)			
			
			fcuenta = (fcapitulo * 1000000) + (fsubcapitulo * 100000) +
		                  (frubro * 10000) + ds_saldos.getValue(i,nCuenta)	
		    $cta_aux    = fcuenta
		    $subcta_aux = ds_saldos.getValue(i,nSubcuenta)					
		
		    //Saldos Cuenta
		    $cta_debe_pes  = $debe_pes 
		    $cta_debe_dol  = $debe_dol 
		    $cta_haber_pes = $haber_pes
		    $cta_haber_dol = $haber_dol
		     //Saldos Subcuenta
		    $Scta_debe_pes  = $debe_pes 
		    $Scta_debe_dol  = $debe_dol 
		    $Scta_haber_pes = $haber_pes
		    $Scta_haber_dol = $haber_dol
			if (ds_saldos.getValue(i,nAnio) == panio_hasta && ds_saldos.getValue(i,nMes) == pmes_hasta)
			{
				//Movimientos Cuenta
				$cta_mov_d_pes  = $debe_pes
				$cta_mov_d_dol  = $debe_dol
				$cta_mov_h_pes  = $haber_pes
				$cta_mov_h_dol  = $haber_dol
				//Movimientos Subcuenta
				$Scta_mov_d_pes = $debe_pes	
				$Scta_mov_d_dol = $debe_dol	
				$Scta_mov_h_pes = $haber_pes
				$Scta_mov_h_dol = $haber_dol
			}
			else
		    {
				//Movimientos Cuenta
			    $cta_mov_d_pes  = 0
				$cta_mov_d_dol  = 0
				$cta_mov_h_pes  = 0
				$cta_mov_h_dol  = 0
				//Movimientos Subcuenta
				$Scta_mov_d_pes = 0
				$Scta_mov_d_dol = 0
				$Scta_mov_h_pes = 0
				$Scta_mov_h_dol = 0			
			}
		}
	}
	$tiene_scta = 0
	if ($subcta_aux != 0)
	{
		//DOY DE ALTA UNA SUBCUENTA E INICIALIZO
		altaDS(ds_balance,$Scta_debe_pes,$Scta_haber_pes,$Scta_debe_dol,$Scta_haber_dol,$cta_aux,$subcta_aux,$Scta_mov_d_pes,$Scta_mov_d_dol,$Scta_mov_h_pes,$Scta_mov_h_dol,$rubro,$capitulo,$subcapitulo,null,null,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,$tiene_scta,fcuenta_id)
		$tiene_scta = 1
	}
	//DOY DE ALTA UNA CUENTA E INICIALIZO
	altaDS(ds_balance,$cta_debe_pes,$cta_haber_pes,$cta_debe_dol,$cta_haber_dol,$cta_aux,0,$cta_mov_d_pes,$cta_mov_d_dol,$cta_mov_h_pes,$cta_mov_h_dol,$rubro,$capitulo,$subcapitulo,null,null,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,$tiene_scta,fcuenta_id)
	return ds_balance 	
}

/**
 * @properties={typeid:24,uuid:"D5DC0977-57F4-4FBA-BB1D-DC41AAFB07BC"}
 */
function BalanceDiv(ds_saldos,cant)
{ 
	var nCuentas_id 	= ds_saldos.rowColumns.indexOf("cuentas_id",0)  +1
	var nDivision       = ds_saldos.rowColumns.indexOf("division",0)    +1
	var nCentro         = ds_saldos.rowColumns.indexOf("centro",0)      +1
	var nRubro 			= ds_saldos.rowColumns.indexOf("rubro",0)       +1
	var nCapitulo       = ds_saldos.rowColumns.indexOf("capitulo",0)    +1
	var nSubcapitulo    = ds_saldos.rowColumns.indexOf("subcapitulo",0) +1
	var nCuenta 		= ds_saldos.rowColumns.indexOf("cuenta",0)      +1
	var nSubcuenta      = ds_saldos.rowColumns.indexOf("subcuenta",0)   +1
	var nDebe_pes       = ds_saldos.rowColumns.indexOf("debe_pes",0)    +1
	var nDebe_dol       = ds_saldos.rowColumns.indexOf("debe_dol",0)    +1
	var nHaber_pes      = ds_saldos.rowColumns.indexOf("haber_pes",0)   +1
	var nHaber_dol      = ds_saldos.rowColumns.indexOf("haber_dol",0)   +1
	var nAnio           = ds_saldos.rowColumns.indexOf("anio",0)        +1
	var nMes            = ds_saldos.rowColumns.indexOf("mes",0)         +1
	var nSaldo_pes_cierre = ds_saldos.rowColumns.indexOf("saldo_pes_cierre",0) +1
	var nSaldo_dol_cierre = ds_saldos.rowColumns.indexOf("saldo_dol_cierre",0) +1
	
	var fcuenta_id 	 = ds_saldos.getValue(1,nCuentas_id)		
	var frubro       = ds_saldos.getValue(1,nRubro)				
	var fcapitulo    = ds_saldos.getValue(1,nCapitulo)			
	var fsubcapitulo = ds_saldos.getValue(1,nSubcapitulo)
	var fcentro
	var fdivision
	var $rubro       = ds_saldos.getValue(1,nRubro)
	var $capitulo    = ds_saldos.getValue(1,nCapitulo)					
	var $subcapitulo = ds_saldos.getValue(1,nSubcapitulo)
	
	fcuenta = (fcapitulo * 1000000) + (fsubcapitulo * 100000) + (frubro * 10000) + ds_saldos.getValue(1,nCuenta)
    var $subcta_aux = ds_saldos.getValue(1,nSubcuenta)
    var $cta_aux    = fcuenta 
    var $division   = ds_saldos.getValue(1,nDivision)
    var $centro		= ds_saldos.getValue(1,nCentro)
    
    var $cols = new Array('division','centro','saldo_anterior','movim_debe','movim_haber','saldo_actual','cuenta_busca','cuenta','subcuenta','rubro','capitulo','subcapitulo','legajo','total_rubro','total_subcapitulo','total_capitulo','cuentas_id')
    var ds_balance = databaseManager.createEmptyDataSet(0,$cols)
    
    //Saldos Cuenta
    var $cta_debe_pes   = 0
    var $cta_debe_dol   = 0
    var $cta_haber_pes  = 0
    var $cta_haber_dol  = 0
    //Movimientos Cuenta
    var $cta_mov_d_pes  = 0
	var $cta_mov_d_dol  = 0
	var $cta_mov_h_pes  = 0
	var $cta_mov_h_dol  = 0
	//Totales rubro, capitulo y subcapitulo (para impresion)
	var $tot_cap_pes = 0
    var $tot_sub_pes = 0
    var $tot_rub_pes = 0
    var $tot_cap_dol = 0
    var $tot_sub_dol = 0
    var $tot_rub_dol = 0
	
    //Variables para obtener los valores
    var $debe_pes	
	var $haber_pes	
	var $debe_dol	
	var $haber_dol 
	var $cierre_dol
	var $cierre_pes
	var $alta = 0
	
    for (var i = 1 ; i <= cant ; i++)
	{
		//ds_saldos.rowIndex = i
		frubro       = ds_saldos.getValue(i,nRubro)						
		fcapitulo    = ds_saldos.getValue(i,nCapitulo)					
		fsubcapitulo = ds_saldos.getValue(i,nSubcapitulo)				
		fdivision    = ds_saldos.getValue(i,nDivision)				
		fcentro		 = ds_saldos.getValue(i,nCentro)
		
	    fcuenta = (fcapitulo * 1000000) + (fsubcapitulo * 100000) +(frubro * 10000) + ds_saldos.getValue(i,nCuenta)
        
        $debe_pes	 = ds_saldos.getValue(i,nDebe_pes)
		$haber_pes	 = ds_saldos.getValue(i,nHaber_pes)
		$debe_dol	 = ds_saldos.getValue(i,nDebe_dol)
		$haber_dol   = ds_saldos.getValue(i,nHaber_dol)
		$cierre_dol  = ds_saldos.getValue(i,nSaldo_dol_cierre)
		$cierre_pes  = ds_saldos.getValue(i,nSaldo_pes_cierre)
		
		if (fAsientoCierre == 1)
		{
			if ($cierre_pes < 0)
			{
				$haber_pes -= $cierre_pes
			}
			else
			{
				$debe_pes += $cierre_pes
			}
			if ($cierre_dol < 0)
			{
				$haber_dol -= $cierre_dol
			}
			else
			{
				$debe_dol += $cierre_dol
			}
		} 		
   		//CUENTA IGUAL
		if ($cta_aux == fcuenta && $subcta_aux == ds_saldos.getValue(i,nSubcuenta) && $division == fdivision && $centro == fcentro)												
		{ 		
			//SUMO TOTALES EN RUBRO CAPITULO Y SUBCAPITULO
			$tot_cap_pes += $debe_pes - $haber_pes
		    $tot_sub_pes += $debe_pes - $haber_pes
		    $tot_rub_pes += $debe_pes - $haber_pes
		    $tot_cap_dol += $debe_dol - $haber_dol
		    $tot_sub_dol += $debe_dol - $haber_dol
		    $tot_rub_dol += $debe_dol - $haber_dol 
			//SUMO TOTALES EN LA CUENTA
			$cta_debe_pes  += $debe_pes
			$cta_debe_dol  += $debe_dol
			$cta_haber_pes += $haber_pes 
			$cta_haber_dol += $haber_dol 
			
			if (ds_saldos.getValue(i,nAnio) == panio_hasta && ds_saldos.getValue(i,nMes) == pmes_hasta)
			{
				$cta_mov_d_pes += $debe_pes 
				$cta_mov_d_dol += $debe_dol 
				$cta_mov_h_pes += $haber_pes		
				$cta_mov_h_dol += $haber_dol				
			}
		}
		else 
		{

			//Verifico cortes por capitulo, subcapitulo y rubro para acumuladores
			if (fcapitulo == $capitulo)
			{
				$tot_cap_pes += $debe_pes - $haber_pes
				$tot_cap_dol += $debe_dol - $haber_dol
				if (fsubcapitulo == $subcapitulo)
				{
					$tot_sub_pes += $debe_pes - $haber_pes
					$tot_sub_dol += $debe_dol - $haber_dol
					if (frubro == $rubro)
					{
						$tot_rub_pes += $debe_pes - $haber_pes
						$tot_rub_dol += $debe_dol - $haber_dol
					}
					else
					{
						//ALTA RUBRO 
						$tot_rub_pes = $debe_pes - $haber_pes
					    $tot_rub_dol = $debe_dol - $haber_dol
						$rubro 		 = frubro
					}				
				}
				else
				{
					//ALTA SUBCAPITULO
					$tot_sub_pes = $debe_pes - $haber_pes
					$tot_sub_dol = $debe_dol - $haber_dol
					$subcapitulo = fsubcapitulo
					$tot_rub_pes = $debe_pes - $haber_pes
				    $tot_rub_dol = $debe_dol - $haber_dol
					$rubro 		 = frubro
				}
			}
			else
			{
				//ALTA CAPITULO
				$tot_cap_pes = $debe_pes - $haber_pes
				$tot_cap_dol = $debe_dol - $haber_dol
				$capitulo 	 = fcapitulo
				$tot_sub_pes = $debe_pes - $haber_pes
				$tot_sub_dol = $debe_dol - $haber_dol
				$subcapitulo = fsubcapitulo
				$tot_rub_pes = $debe_pes - $haber_pes
			    $tot_rub_dol = $debe_dol - $haber_dol
				$rubro 		 = frubro
			}
			
			//Doy de alta la division
			if (fAbierto == 1)
			{
				//Mando el centro
				altaDiv(ds_balance,$cta_debe_pes,$cta_haber_pes,$cta_debe_dol,$cta_haber_dol,$cta_aux,$subcta_aux,$cta_mov_d_pes,$cta_mov_d_dol,$cta_mov_h_pes,$cta_mov_h_dol,$rubro,$capitulo,$subcapitulo,$division,$centro,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,fcuenta_id)
				$alta = 1
			}
			else
			{	
				if ($division != fdivision)
				{	
					//CENTRO NULO
					altaDiv(ds_balance,$cta_debe_pes,$cta_haber_pes,$cta_debe_dol,$cta_haber_dol,$cta_aux,$subcta_aux,$cta_mov_d_pes,$cta_mov_d_dol,$cta_mov_h_pes,$cta_mov_h_dol,$rubro,$capitulo,$subcapitulo,$division,null,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,fcuenta_id)
					$alta = 1
				}
				else
				{
					if (fcuenta != $cta_aux)
					{
						altaDiv(ds_balance,$cta_debe_pes,$cta_haber_pes,$cta_debe_dol,$cta_haber_dol,$cta_aux,$subcta_aux,$cta_mov_d_pes,$cta_mov_d_dol,$cta_mov_h_pes,$cta_mov_h_dol,$rubro,$capitulo,$subcapitulo,$division,null,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,fcuenta_id)
						$alta = 1
					}
					else
					{
						$cta_debe_pes  += $debe_pes
						$cta_debe_dol  += $debe_dol
						$cta_haber_pes += $haber_pes 
						$cta_haber_dol += $haber_dol 
						
						if (ds_saldos.getValue(i,nAnio) == panio_hasta && ds_saldos.getValue(i,nMes) == pmes_hasta)
						{
							$cta_mov_d_pes += $debe_pes 
							$cta_mov_d_dol += $debe_dol 
							$cta_mov_h_pes += $haber_pes		
							$cta_mov_h_dol += $haber_dol				
						}
						$alta = 0
					}
				}
			}
				

			//INICALIZO VARIABLES
			fcuenta_id   = ds_saldos.getValue(i,nCuentas_id)						
			frubro       = ds_saldos.getValue(i,nRubro)						
			fcapitulo    = ds_saldos.getValue(i,nCapitulo)					
			fsubcapitulo = ds_saldos.getValue(i,nSubcapitulo)			
			fdivision    = ds_saldos.getValue(i,nDivision)				
			fcentro		 = ds_saldos.getValue(i,nCentro)
			
    	    fcuenta 	= (fcapitulo * 1000000) + (fsubcapitulo * 100000) + (frubro * 10000) + ds_saldos.getValue(i,nCuenta)
            $subcta_aux = ds_saldos.getValue(i,nSubcuenta)
		    $cta_aux    = fcuenta
		    $division   = fdivision
		    $centro		= fcentro
		    if ($alta == 1)
		    {
			    //Saldos Cuenta
			    $cta_debe_pes  = $debe_pes 
			    $cta_debe_dol  = $debe_dol 
			    $cta_haber_pes = $haber_pes
			    $cta_haber_dol = $haber_dol
				
			    if (ds_saldos.getValue(i,nAnio) == panio_hasta && ds_saldos.getValue(i,nMes) == pmes_hasta)
				{
					//Movimientos Cuenta
					$cta_mov_d_pes  = $debe_pes 
					$cta_mov_d_dol  = $debe_dol 
					$cta_mov_h_pes  = $haber_pes
					$cta_mov_h_dol  = $haber_dol
				}
				else
			    {
					//Movimientos Cuenta
				    $cta_mov_d_pes  = 0
					$cta_mov_d_dol  = 0
					$cta_mov_h_pes  = 0
					$cta_mov_h_dol  = 0
				}
			}
	    }
	}
	//DOY DE ALTA LA ULTIMA CUENTA
	if (fAbierto == 1)
	{
		//Mando el centro
		altaDiv(ds_balance,$cta_debe_pes,$cta_haber_pes,$cta_debe_dol,$cta_haber_dol,$cta_aux,$subcta_aux,$cta_mov_d_pes,$cta_mov_d_dol,$cta_mov_h_pes,$cta_mov_h_dol,$rubro,$capitulo,$subcapitulo,$division,$centro,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,fcuenta_id)	
	}
	else
		altaDiv(ds_balance,$cta_debe_pes,$cta_haber_pes,$cta_debe_dol,$cta_haber_dol,$cta_aux,$subcta_aux,$cta_mov_d_pes,$cta_mov_d_dol,$cta_mov_h_pes,$cta_mov_h_dol,$rubro,$capitulo,$subcapitulo,$division,null,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,fcuenta_id)
	
	return ds_balance
}

/**
 * @properties={typeid:24,uuid:"5D5725AE-7F4D-4978-BB74-07833D34E340"}
 */
function imprimir(event) {
	/*var $win = application.createWindow('BALANCE',JSWindow.DIALOG)
	$win.title = 'Impresion del Balance'
	forms[form_impresion].controller.show($win)*/
	preparaImpresion()
	forms[form_impresion].controller.showPrintPreview()
}

/**
 * @properties={typeid:24,uuid:"61BB1DAF-D65B-449E-AB14-8EF1807D1A30"}
 */
function altaDS(ds_balance,$Scta_debe_pes,$Scta_haber_pes,$Scta_debe_dol,$Scta_haber_dol,$cta,$scta,$Scta_mov_d_pes,$Scta_mov_d_dol,$Scta_mov_h_pes,$Scta_mov_h_dol,$rubro,$capitulo,$subcapitulo,$division,$centro,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,$tiene_scta,pcuenta)
{
	if (globals.gmoneda_consulta == 1)
	{
		var $saldo_anterior 	= $Scta_debe_pes - $Scta_haber_pes - ($Scta_mov_d_pes - $Scta_mov_h_pes)
		var $saldo_actual 		= $Scta_debe_pes - $Scta_haber_pes 
		var $movim_debe			= $Scta_mov_d_pes
		var $movim_haber 		= $Scta_mov_h_pes
		var $total_rubro		= $tot_rub_pes
		var $total_subcapitulo 	= $tot_sub_pes
		var $total_capitulo 	= $tot_cap_pes  		
	}
	else
	{
		var $saldo_anterior 	= $Scta_debe_dol - $Scta_haber_dol - ($Scta_mov_d_dol - $Scta_mov_h_dol)
		var $saldo_actual 		= $Scta_debe_dol - $Scta_haber_dol 
		var $movim_debe			= $Scta_mov_d_dol
		var $movim_haber 		= $Scta_mov_h_dol
		var $total_rubro		= $tot_rub_dol
		var $total_subcapitulo 	= $tot_sub_dol
		var $total_capitulo 	= $tot_cap_dol
	}

	var xcta = ($cta * 10000) + $scta 
	var $cuenta_busca = utils.numberFormat(xcta,"00000000000")
	var $legajo = globals.glegajo
	if (Math.abs($saldo_actual) >= 0.01 && $saldo_actual != null)
	{
		if ($scta != 0)
			var $reg = new Array($division,$centro,$saldo_anterior,$movim_debe,$movim_haber,$saldo_actual,$cuenta_busca,$cta,$scta,$rubro,$capitulo,$subcapitulo,$legajo,$total_rubro,$total_subcapitulo,$total_capitulo,null,pcuenta)
		else
		{
			if ($tiene_scta == 0)
				var $reg = new Array($division,$centro,$saldo_anterior,$movim_debe,$movim_haber,$saldo_actual,$cuenta_busca,$cta,$scta,$rubro,$capitulo,$subcapitulo,$legajo,$total_rubro,$total_subcapitulo,$total_capitulo,null,pcuenta)
			else	
				var $reg = new Array($division,$centro,$saldo_anterior,$movim_debe,$movim_haber,null,$cuenta_busca,$cta,$scta,$rubro,$capitulo,$subcapitulo,$legajo,$total_rubro,$total_subcapitulo,$total_capitulo,$saldo_actual,pcuenta)
		}
		ds_balance.addRow($reg)
	}
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"4E89B904-68B1-4FE9-9F08-E197125D5063"}
 */
function onDataChangeTarea(oldValue, newValue, event) {
	elements.pdivision.visible = false
	elements.pcentro.visible   = false
	elements.botcen.visible    = false
	elements.botdiv.visible    = false	
	if (newValue == 2 || newValue == 3)
	{
		elements.fld_abierto.visible = true
		elements.lbl_abierto.visible = true
		if (newValue == 2)
			elements.lbl_abierto.text = 'Abierto por Centro'
		else
			elements.lbl_abierto.text = 'Abierto por Division'
	}
	else
	{
		elements.fld_abierto.visible = false
		elements.lbl_abierto.visible = false
	}
	if (newValue == 2)
	{
		elements.pdivision.visible = true
		elements.botdiv.visible    = true
	}
	if (newValue == 3)
	{
		elements.pcentro.visible = true
		elements.botcen.visible  = true
	}
	pcentro = null	
	pdivision = null
	fAbierto = 0
	return true
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"E598BFAF-C5F7-423C-84C2-DCC45989A1E3"}
 */
function onAction_btdiv(event) {
	pdivision = null
	pcentro = null	
	fAbierto = 0
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"57B069DD-E740-480E-8A8D-33F6D430A904"}
 */
function onAction_btcen(event) {
	pcentro = null	
	pdivision = null
	fAbierto = 0
}

/**
 * @properties={typeid:24,uuid:"0D98A040-B5AE-4D8E-955F-48F1A32053A7"}
 */
function altaDiv(ds_balance,$Scta_debe_pes,$Scta_haber_pes,$Scta_debe_dol,$Scta_haber_dol,$cta,$scta,$Scta_mov_d_pes,$Scta_mov_d_dol,$Scta_mov_h_pes,$Scta_mov_h_dol,frubro,fcapitulo,fsubcapitulo,$division,$centro,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,pcuenta) 
{
	if (globals.gmoneda_consulta == 1)
	{
		var $saldo_anterior = $Scta_debe_pes - $Scta_haber_pes - ($Scta_mov_d_pes - $Scta_mov_h_pes)
		var $saldo_actual 	= $Scta_debe_pes - $Scta_haber_pes 
		var $movim_debe		= $Scta_mov_d_pes
		var $movim_haber 	= $Scta_mov_h_pes
		var $total_rubro		= $tot_rub_pes
		var $total_subcapitulo 	= $tot_sub_pes
		var $total_capitulo 	= $tot_cap_pes
	}
	else
	{
		var $saldo_anterior = $Scta_debe_dol - $Scta_haber_dol - ($Scta_mov_d_dol - $Scta_mov_h_dol)
		var $saldo_actual 	= $Scta_debe_dol - $Scta_haber_dol 
		var $movim_debe		= $Scta_mov_d_dol
		var $movim_haber 	= $Scta_mov_h_dol
		var $total_rubro		= $tot_rub_dol
		var $total_subcapitulo 	= $tot_sub_dol
		var $total_capitulo 	= $tot_cap_dol
	}
	var xcta = ($cta * 10000) + $scta 
	var $cuenta_busca = utils.numberFormat(xcta,"00000000000")
	var $legajo = globals.glegajo
	if (Math.abs($saldo_actual) >= 0.01 && $saldo_actual != null)
	{
		var $reg = new Array($division,$centro,$saldo_anterior,$movim_debe,$movim_haber,$saldo_actual,$cuenta_busca,$cta,$scta,frubro,fcapitulo,fsubcapitulo,$legajo,$total_rubro,$total_subcapitulo,$total_capitulo,pcuenta)
		ds_balance.addRow($reg)
	}
}

/**
 * @properties={typeid:24,uuid:"5A11EFF3-3E85-4660-9FFE-A1C096B3EF15"}
 */
function BalanceTot(ds_saldos,cant) {
	var nRubro 		 = ds_saldos.rowColumns.indexOf("rubro",0)       +1
	var nCapitulo    = ds_saldos.rowColumns.indexOf("capitulo",0)    +1
	var nSubcapitulo = ds_saldos.rowColumns.indexOf("subcapitulo",0) +1
	var nDebe_pes    = ds_saldos.rowColumns.indexOf("debe_pes",0)    +1
	var nDebe_dol    = ds_saldos.rowColumns.indexOf("debe_dol",0)    +1
	var nHaber_pes   = ds_saldos.rowColumns.indexOf("haber_pes",0)   +1
	var nHaber_dol   = ds_saldos.rowColumns.indexOf("haber_dol",0)   +1
	
	var frubro       = ds_saldos.getValue(1,nRubro)				
	var fcapitulo    = ds_saldos.getValue(1,nCapitulo)			
	var fsubcapitulo = ds_saldos.getValue(1,nSubcapitulo)
	var ftexto       = "prueba"
     
    var $cols = new Array('capitulo','subcapitulo','rubro','texto','total')
    var ds_total = databaseManager.createEmptyDataSet(0,$cols)
    
    var $tot_cap_pes = 0
    var $tot_sub_pes = 0
    var $tot_rub_pes = 0
    var $tot_cap_dol = 0
    var $tot_sub_dol = 0
    var $tot_rub_dol = 0
    
    for (var i = 1 ; i <= cant ; i++)
	{
		ds_saldos.rowIndex = i
		if (fcapitulo == ds_saldos.getValue(i,nCapitulo))												
		{ 		
			$tot_cap_pes = $tot_cap_pes + ds_saldos.getValue(i,nDebe_pes) - ds_saldos.getValue(i,nHaber_pes)
			$tot_cap_dol = $tot_cap_dol + ds_saldos.getValue(i,nDebe_dol) - ds_saldos.getValue(i,nHaber_dol)
			if (fsubcapitulo == ds_saldos.getValue(i,nSubcapitulo))												
			{ 		
				$tot_sub_pes = $tot_sub_pes + ds_saldos.getValue(i,nDebe_pes) - ds_saldos.getValue(i,nHaber_pes)
				$tot_sub_dol = $tot_sub_dol + ds_saldos.getValue(i,nDebe_dol) - ds_saldos.getValue(i,nHaber_dol)
				if (frubro == ds_saldos.getValue(i,nRubro))												
				{ 		
					$tot_rub_pes = $tot_rub_pes + ds_saldos.getValue(i,nDebe_pes) - ds_saldos.getValue(i,nHaber_pes)
					$tot_rub_dol = $tot_rub_dol + ds_saldos.getValue(i,nDebe_dol) - ds_saldos.getValue(i,nHaber_dol)
				}
				else
				{
					globals.gcapitulo    = fcapitulo
					globals.gsubcapitulo = fsubcapitulo
					globals.grubro       = frubro 				
					ftexto = z_rubro_to_rubro.descripcion
					altaTot(ds_total,fcapitulo,fsubcapitulo,frubro,ftexto,$tot_rub_pes,$tot_rub_dol)
					frubro = ds_saldos.getValue(i,nRubro)
					$tot_rub_pes = ds_saldos.getValue(i,nDebe_pes) - ds_saldos.getValue(i,nHaber_pes)
					$tot_rub_dol = ds_saldos.getValue(i,nDebe_dol) - ds_saldos.getValue(i,nHaber_dol)
				}
			}
			else
			{
				globals.gcapitulo    = fcapitulo
				globals.gsubcapitulo = fsubcapitulo
				globals.grubro       = frubro
				ftexto = z_rubro_to_rubro.descripcion				
				altaTot(ds_total,fcapitulo,fsubcapitulo,frubro,ftexto,$tot_rub_pes,$tot_rub_dol)
                ftexto = z_subcapitulo_to_subcapitulo.descripcion				
				altaTot(ds_total,fcapitulo,fsubcapitulo,null,ftexto,$tot_sub_pes,$tot_sub_dol)
				frubro = ds_saldos.getValue(i,nRubro)
				$tot_rub_pes = ds_saldos.getValue(i,nDebe_pes) - ds_saldos.getValue(i,nHaber_pes)
				$tot_rub_dol = ds_saldos.getValue(i,nDebe_dol) - ds_saldos.getValue(i,nHaber_dol)
				fsubcapitulo = ds_saldos.getValue(i,nSubcapitulo)
				$tot_sub_pes = ds_saldos.getValue(i,nDebe_pes) - ds_saldos.getValue(i,nHaber_pes)
				$tot_sub_dol = ds_saldos.getValue(i,nDebe_dol) - ds_saldos.getValue(i,nHaber_dol)  	
			} 
		}
		else 
		{
			globals.gcapitulo    = fcapitulo
			globals.gsubcapitulo = fsubcapitulo
			globals.grubro       = frubro
 			ftexto = z_rubro_to_rubro.descripcion			
			altaTot(ds_total,fcapitulo,fsubcapitulo,frubro,ftexto,$tot_rub_pes,$tot_rub_dol)
            ftexto = z_subcapitulo_to_subcapitulo.descripcion		
			altaTot(ds_total,fcapitulo,fsubcapitulo,null,ftexto,$tot_sub_pes,$tot_sub_dol)
			ftexto = capitulo_to_capitulo.nombre
			altaTot(ds_total,fcapitulo,null,null,ftexto,$tot_cap_pes,$tot_cap_dol)
			frubro = ds_saldos.getValue(i,nRubro)
			$tot_rub_pes = ds_saldos.getValue(i,nDebe_pes) - ds_saldos.getValue(i,nHaber_pes)
			$tot_rub_dol = ds_saldos.getValue(i,nDebe_dol) - ds_saldos.getValue(i,nHaber_dol)
			fsubcapitulo = ds_saldos.getValue(i,nSubcapitulo)
			$tot_sub_pes = ds_saldos.getValue(i,nDebe_pes) - ds_saldos.getValue(i,nHaber_pes)
			$tot_sub_dol = ds_saldos.getValue(i,nDebe_dol) - ds_saldos.getValue(i,nHaber_dol) 	
			fcapitulo = ds_saldos.getValue(i,nCapitulo)
			$tot_cap_pes = ds_saldos.getValue(i,nDebe_pes) - ds_saldos.getValue(i,nHaber_pes)
			$tot_cap_dol = ds_saldos.getValue(i,nDebe_dol) - ds_saldos.getValue(i,nHaber_dol)   	
		} 	
	}
	globals.gcapitulo    = fcapitulo
	globals.gsubcapitulo = fsubcapitulo
	globals.grubro       = frubro
	ftexto = z_rubro_to_rubro.descripcion	
	altaTot(ds_total,fcapitulo,fsubcapitulo,frubro,ftexto,$tot_rub_pes,$tot_rub_dol)
    ftexto = z_subcapitulo_to_subcapitulo.descripcion
	altaTot(ds_total,fcapitulo,fsubcapitulo,null,ftexto,$tot_sub_pes,$tot_sub_dol)
	ftexto = capitulo_to_capitulo.nombre
	altaTot(ds_total,fcapitulo,null,null,ftexto,$tot_cap_pes,$tot_cap_dol)
	return ds_total
}

/**
 * @properties={typeid:24,uuid:"411953ED-E727-4081-8281-D68706746703"}
 */
function altaTot(ds_total,$cap,$sub,$rub,$texto,$pesos,$dolar) {
	if (globals.gmoneda_consulta == 1)
	{
		var $total = $pesos
	}
	else
	{
	 	var $total = $dolar	
	}
	if (Math.abs($total) >= 0.01 && $total != null)
	{
		var $reg = new Array($cap,$sub,$rub,$texto,$total)
		ds_total.addRow($reg)
	}
}

/**
 * @properties={typeid:24,uuid:"EE03AFD9-9BB1-4507-940B-DED85C42A514"}
 */
function BalanceCen(ds_saldos,cant) {
	var nCuentas_id 	= ds_saldos.rowColumns.indexOf("cuentas_id",0)  +1
	var nDivision       = ds_saldos.rowColumns.indexOf("division",0)    +1
	var nCentro         = ds_saldos.rowColumns.indexOf("centro",0)      +1
	var nRubro 			= ds_saldos.rowColumns.indexOf("rubro",0)       +1
	var nCapitulo       = ds_saldos.rowColumns.indexOf("capitulo",0)    +1
	var nSubcapitulo    = ds_saldos.rowColumns.indexOf("subcapitulo",0) +1
	var nCuenta 		= ds_saldos.rowColumns.indexOf("cuenta",0)      +1
	var nSubcuenta      = ds_saldos.rowColumns.indexOf("subcuenta",0)   +1
	var nDebe_pes       = ds_saldos.rowColumns.indexOf("debe_pes",0)    +1
	var nDebe_dol       = ds_saldos.rowColumns.indexOf("debe_dol",0)    +1
	var nHaber_pes      = ds_saldos.rowColumns.indexOf("haber_pes",0)   +1
	var nHaber_dol      = ds_saldos.rowColumns.indexOf("haber_dol",0)   +1
	var nAnio           = ds_saldos.rowColumns.indexOf("anio",0)        +1
	var nMes            = ds_saldos.rowColumns.indexOf("mes",0)         +1
	var nSaldo_pes_cierre = ds_saldos.rowColumns.indexOf("saldo_pes_cierre",0) +1
	var nSaldo_dol_cierre = ds_saldos.rowColumns.indexOf("saldo_dol_cierre",0) +1
	
	var fcuenta_id   = ds_saldos.getValue(1,nCuentas_id)		
	var frubro       = ds_saldos.getValue(1,nRubro)				
	var fcapitulo    = ds_saldos.getValue(1,nCapitulo)			
	var fsubcapitulo = ds_saldos.getValue(1,nSubcapitulo)	
	var $rubro       = ds_saldos.getValue(1,nRubro)						
	var $capitulo    = ds_saldos.getValue(1,nCapitulo)					
	var $subcapitulo = ds_saldos.getValue(1,nSubcapitulo)
	
	fcuenta = (fcapitulo * 1000000) + (fsubcapitulo * 100000) +
        (frubro * 10000) + ds_saldos.getValue(1,nCuenta)
    var $subcta_aux = ds_saldos.getValue(1,nSubcuenta)
    var $cta_aux    = fcuenta 
    var $division   = ds_saldos.getValue(1,nDivision)
    var $centro     = ds_saldos.getValue(1,nCentro)
    
    var $cols = new Array('division','centro','saldo_anterior','movim_debe','movim_haber','saldo_actual','cuenta_busca','cuenta','subcuenta','rubro','capitulo','subcapitulo','legajo','total_rubro','total_subcapitulo','total_capitulo','cuentas_id')
    var ds_balance = databaseManager.createEmptyDataSet(0,$cols)
    
    //Saldos Cuenta
    var $cta_debe_pes   = 0
    var $cta_debe_dol   = 0
    var $cta_haber_pes  = 0
    var $cta_haber_dol  = 0
    //Movimientos Cuenta
    var $cta_mov_d_pes  = 0
	var $cta_mov_d_dol  = 0
	var $cta_mov_h_pes  = 0
	var $cta_mov_h_dol  = 0
	//Totales rubro, capitulo y subcapitulo (para impresion)
	var $tot_cap_pes = 0
    var $tot_sub_pes = 0
    var $tot_rub_pes = 0
    var $tot_cap_dol = 0
    var $tot_sub_dol = 0
    var $tot_rub_dol = 0
    
    //Variables auxiliares
    
    var $debe_pes	
	var $haber_pes	
	var $debe_dol	
	var $haber_dol 
	var $cierre_dol
	var $cierre_pes
	var $alta = 0
	
	for (var i = 1 ; i <= cant ; i++)
	{
//		ds_saldos.rowIndex = i

		frubro       = ds_saldos.getValue(i,nRubro)						
		fcapitulo    = ds_saldos.getValue(i,nCapitulo)					
		fsubcapitulo = ds_saldos.getValue(i,nSubcapitulo)				
		var fdivision    = ds_saldos.getValue(i,nDivision)				
		var fcentro      = ds_saldos.getValue(i,nCentro)				

	    fcuenta = (fcapitulo * 1000000) + (fsubcapitulo * 100000) + 
            (frubro * 10000) + ds_saldos.getValue(i,nCuenta)
        
        $debe_pes	 = ds_saldos.getValue(i,nDebe_pes)
		$haber_pes	 = ds_saldos.getValue(i,nHaber_pes)
		$debe_dol	 = ds_saldos.getValue(i,nDebe_dol)
		$haber_dol   = ds_saldos.getValue(i,nHaber_dol)
		$cierre_dol  = ds_saldos.getValue(i,nSaldo_dol_cierre)
		$cierre_pes  = ds_saldos.getValue(i,nSaldo_pes_cierre)
		
		if (fAsientoCierre == 1)
		{
			if ($cierre_pes < 0)
			{
				$haber_pes   -=	$cierre_pes
			}
			else
			{
				$debe_pes	 +=	$cierre_pes
			}
			if ($cierre_dol < 0)
			{
				$haber_dol   -=	$cierre_dol
			}
			else
			{
				$debe_dol	 +=	$cierre_dol
			}
		}		
   		//CUENTA IGUAL
		if ($cta_aux == fcuenta && $subcta_aux == ds_saldos.getValue(i,nSubcuenta) && $centro == fcentro && $division == fdivision)												
		{
			//SUMO TOTALES EN RUBRO CAPITULO Y SUBCAPITULO
			$tot_cap_pes += $debe_pes - $haber_pes
		    $tot_sub_pes += $debe_pes - $haber_pes
		    $tot_rub_pes += $debe_pes - $haber_pes
		    $tot_cap_dol += $debe_dol - $haber_dol
		    $tot_sub_dol += $debe_dol - $haber_dol
		    $tot_rub_dol += $debe_dol - $haber_dol
			//SUMO TOTALES EN LA CUENTA
			$cta_debe_pes  += $debe_pes  
			$cta_debe_dol  += $debe_dol  
			$cta_haber_pes += $haber_pes 
			$cta_haber_dol += $haber_dol 
			
			if (ds_saldos.getValue(i,nAnio) == panio_hasta && ds_saldos.getValue(i,nMes) == pmes_hasta)
			{
				$cta_mov_d_pes += $debe_pes  
				$cta_mov_d_dol += $debe_dol  
				$cta_mov_h_pes += $haber_pes 		
				$cta_mov_h_dol += $haber_dol 				
			}
		}
		else 
		{
			//Corto por capitulo, subcapitulo, rubro, cuenta, subcuenta, division o centro

			//Verifico cortes por capitulo, subcapitulo y rubro para acumuladores
			if (fcapitulo == $capitulo)
			{
				$tot_cap_pes += $debe_pes - $haber_pes
				$tot_cap_dol += $debe_dol - $haber_dol
				if (fsubcapitulo == $subcapitulo)
				{
					$tot_sub_pes += $debe_pes - $haber_pes
					$tot_sub_dol += $debe_dol - $haber_dol
					if (frubro == $rubro)
					{
						$tot_rub_pes += $debe_pes - $haber_pes
						$tot_rub_dol += $debe_dol - $haber_dol
					}
					else
					{
						//ALTA RUBRO 
						$tot_rub_pes = $debe_pes - $haber_pes
					    $tot_rub_dol = $debe_dol - $haber_dol
						$rubro 		 = frubro
					}				
				}
				else
				{
					//ALTA SUBCAPITULO
					$tot_sub_pes = $debe_pes - $haber_pes
					$tot_sub_dol = $debe_dol - $haber_dol
					$subcapitulo = fsubcapitulo
					$tot_rub_pes = $debe_pes - $haber_pes
				    $tot_rub_dol = $debe_dol - $haber_dol
					$rubro 		 = frubro
				}
			}
			else
			{
				//ALTA CAPITULO
				$tot_cap_pes = $debe_pes - $haber_pes
				$tot_cap_dol = $debe_dol - $haber_dol
				$capitulo 	 = fcapitulo
				$tot_sub_pes = $debe_pes - $haber_pes
				$tot_sub_dol = $debe_dol - $haber_dol
				$subcapitulo = fsubcapitulo
				$tot_rub_pes = $debe_pes - $haber_pes
			    $tot_rub_dol = $debe_dol - $haber_dol
				$rubro 		 = frubro
			}
			
			//Doy de alta la division
			if (fAbierto == 1)
			{
				//MANDO LA DIVISION
				altaDiv(ds_balance,$cta_debe_pes,$cta_haber_pes,$cta_debe_dol,$cta_haber_dol,$cta_aux,$subcta_aux,$cta_mov_d_pes,$cta_mov_d_dol,$cta_mov_h_pes,$cta_mov_h_dol,$rubro,$capitulo,$subcapitulo,$division,$centro,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,fcuenta_id)					
				$alta = 1
			}
			else
			{	
				if ($centro != fcentro)
				{	
					//DIVISION NULA
					altaDiv(ds_balance,$cta_debe_pes,$cta_haber_pes,$cta_debe_dol,$cta_haber_dol,$cta_aux,$subcta_aux,$cta_mov_d_pes,$cta_mov_d_dol,$cta_mov_h_pes,$cta_mov_h_dol,$rubro,$capitulo,$subcapitulo,null,$centro,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,fcuenta_id)
					$alta = 1
				}
				else
				{
					if (fcuenta != $cta_aux)
					{
						altaDiv(ds_balance,$cta_debe_pes,$cta_haber_pes,$cta_debe_dol,$cta_haber_dol,$cta_aux,$subcta_aux,$cta_mov_d_pes,$cta_mov_d_dol,$cta_mov_h_pes,$cta_mov_h_dol,$rubro,$capitulo,$subcapitulo,null,$centro,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,fcuenta_id)
						$alta = 1
					}
					else
					{
						$cta_debe_pes  += $debe_pes
						$cta_debe_dol  += $debe_dol
						$cta_haber_pes += $haber_pes 
						$cta_haber_dol += $haber_dol 
						
						if (ds_saldos.getValue(i,nAnio) == panio_hasta && ds_saldos.getValue(i,nMes) == pmes_hasta)
						{
							$cta_mov_d_pes += $debe_pes 
							$cta_mov_d_dol += $debe_dol 
							$cta_mov_h_pes += $haber_pes		
							$cta_mov_h_dol += $haber_dol				
						}
						$alta = 0
					}
				}
			}
				

			//INICALIZO VARIABLES
			fcuenta_id   = ds_saldos.getValue(i,nCuentas_id)						
			frubro       = ds_saldos.getValue(i,nRubro)						
			fcapitulo    = ds_saldos.getValue(i,nCapitulo)					
			fsubcapitulo = ds_saldos.getValue(i,nSubcapitulo)			
			fdivision    = ds_saldos.getValue(i,nDivision)				
			fcentro		 = ds_saldos.getValue(i,nCentro)
			
    	    fcuenta 	= (fcapitulo * 1000000) + (fsubcapitulo * 100000) + (frubro * 10000) + ds_saldos.getValue(i,nCuenta)
            $subcta_aux = ds_saldos.getValue(i,nSubcuenta)
		    $cta_aux    = fcuenta
		    $division   = fdivision
		    $centro		= fcentro
		    if ($alta == 1)
		    {
			    //Saldos Cuenta
			    $cta_debe_pes  = $debe_pes 
			    $cta_debe_dol  = $debe_dol 
			    $cta_haber_pes = $haber_pes
			    $cta_haber_dol = $haber_dol
				
			    if (ds_saldos.getValue(i,nAnio) == panio_hasta && ds_saldos.getValue(i,nMes) == pmes_hasta)
				{
					//Movimientos Cuenta
					$cta_mov_d_pes  = $debe_pes 
					$cta_mov_d_dol  = $debe_dol 
					$cta_mov_h_pes  = $haber_pes
					$cta_mov_h_dol  = $haber_dol
				}
				else
			    {
					//Movimientos Cuenta
				    $cta_mov_d_pes  = 0
					$cta_mov_d_dol  = 0
					$cta_mov_h_pes  = 0
					$cta_mov_h_dol  = 0
				}
			}
	    			
		}
	}
	//DOY DE ALTA UNA CUENTA E INICIALIZO
	if (fAbierto == 0)
		altaDiv(ds_balance,$cta_debe_pes,$cta_haber_pes,$cta_debe_dol,$cta_haber_dol,$cta_aux,$subcta_aux,$cta_mov_d_pes,$cta_mov_d_dol,$cta_mov_h_pes,$cta_mov_h_dol,$rubro,$capitulo,$subcapitulo,null,$centro,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,fcuenta_id)
	else
		altaDiv(ds_balance,$cta_debe_pes,$cta_haber_pes,$cta_debe_dol,$cta_haber_dol,$cta_aux,$subcta_aux,$cta_mov_d_pes,$cta_mov_d_dol,$cta_mov_h_pes,$cta_mov_h_dol,$rubro,$capitulo,$subcapitulo,$division,$centro,$tot_rub_pes,$tot_rub_dol,$tot_sub_pes,$tot_sub_dol,$tot_cap_pes,$tot_cap_dol,fcuenta_id)			

	return ds_balance 
}

/**
 * @param {String} extension
 * @param {String} comienzo_archivo
 * @param {String} comienzo_linea
 * @param {String} marca_txt
 * @param {String} separador
 * @param {String} fin_linea
 * @param {String} fin_archivo
 *
 * @properties={typeid:24,uuid:"3DC6F2C2-1602-4100-BA7A-43806A72C935"}
 */
function exportaExcel(extension,comienzo_archivo,comienzo_linea,marca_txt,separador,fin_linea,fin_archivo) {
	
	if (ptarea == 1)
	{
		var $cols = new Array('cuenta_busca','saldo_actual','saldo_cuenta')
		var $titulos = new Array('Cuenta','Saldo Actual','Saldo Cuenta')
		var $tipos = new Array(JSColumn.TEXT,JSColumn.NUMBER,JSColumn.NUMBER)
	}
	else
	{
		var $cols = new Array('cuenta_busca','division','centro','saldo_anterior','movim_debe','movim_haber','saldo_actual')
		var $titulos = new Array('Cuenta','Division','Centro','Saldo Anterior','Debe','Haber','Saldo Actual')
		var $tipos = new Array(JSColumn.TEXT,JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER)
	}
	
	var frm = 'balance_2'
	var $nombre = 'c:/Balance - ' + globals.glegajo + extension
	var jsFile
	if (application.getApplicationType() == APPLICATION_TYPES.WEB_CLIENT)
	{
		jsFile = plugins.file.createFile($nombre)
	}
	else
	{
		jsFile = plugins.file.showFileSaveDialog($nombre)
	}
	if (jsFile)
	{
		var fw = new Packages.java.io.FileWriter(jsFile.getAbsolutePath());
		var bw = new Packages.java.io.BufferedWriter(fw);
		
		var fs = forms[frm]
		
		if (comienzo_archivo != '')
		{
			bw.write(comienzo_archivo,0,comienzo_archivo.length)
			bw.newLine()
		}
		
		//ESCRIBO EL NOMBRE DE LAS COLUMNAS EN LA PRIMER LINEA DEL ARCHIVO
		var linea = comienzo_linea
		for (var j = 0 ; j < $titulos.length ; j++)
		{
			if (j != 0)
				linea += separador
			linea += marca_txt + $titulos[j] + marca_txt
		}
		linea += fin_linea
		bw.write(linea,0,linea.length)
		linea = comienzo_linea

		var cuantos = databaseManager.getFoundSetCount(fs.foundset)
		var i = 1
		
		while (i <= cuantos)
		{
			fs.controller.setSelectedIndex(i)
			for (j = 0 ; j < $cols.length ; j++)
			{
				var campo = fs.controller.getDataProviderValue($cols[j])
				
				if (fs.elements[$cols[j]].getValueListName() != null)
				{
					fs.elements[$cols[j]].requestFocus()
					fs.elements[$cols[j]].selectAll()
					campo = fs.elements[$cols[j]].getSelectedText()
				}
				else
				{
					if ($tipos[j] == JSColumn.NUMBER)
						campo = utils.numberFormat(campo,2)
					else
					{
						if ($tipos[j] == JSColumn.DATETIME)
							campo = utils.dateFormat(campo, 'dd-MM-yyyy')
					}
				}
				if (j != 0)
					linea += separador
				linea += marca_txt + campo + marca_txt
			}
			linea += fin_linea
			bw.newLine()
			bw.write(linea,0,linea.length)
			linea = comienzo_linea
			i++
		}
		if (fin_archivo != '')
		{
			bw.write(fin_archivo,0,fin_archivo.length)
		}
		bw.close()
		fw.close()

		if (application.getApplicationType() == APPLICATION_TYPES.WEB_CLIENT)
		{
			var mimeType = 'application/vnd.ms-excel'
			if (!plugins.file.writeFile(jsFile.getName(), jsFile.getBytes(), mimeType))
			{
				globals.DIALOGS.showErrorDialog('Error','Ocurrio un error y no se pudo grabar el archivo','OK');
			}
			plugins.file.deleteFile(jsFile.getAbsolutePath())
		}
		else
		{
			application.executeProgram("rundll32.exe", ["url.dll,FileProtocolHandler", jsFile.getAbsolutePath()])
		}
	}
}

/**
 * @properties={typeid:24,uuid:"419A305F-BAE0-470A-B01D-63EF5BACEEFA"}
 */
function pdf() {
	preparaImpresion()
	if (application.getApplicationType() == APPLICATION_TYPES.SMART_CLIENT)
	{
		var arch = plugins.file.showFileSaveDialog( 'c:/Balance - ' + globals.glegajo + '.pdf', 'Guardar archivo')
		if (arch)
		{
			forms[form_impresion].controller.print(false,false,plugins.pdf_output.getPDFPrinter(arch.getAbsolutePath()));
			application.executeProgram("rundll32.exe", ["url.dll,FileProtocolHandler", arch.getAbsolutePath()])
		}
	}
	else
	{
		forms[form_impresion].controller.showPrintPreview()
	}
}

/**
 * @properties={typeid:24,uuid:"B7E1CB03-FF25-4553-8175-E3632DBE3BF3"}
 */
function xls() {
	exportaExcel('.xls','<TABLE CELLPADDING="1" CELLSPACING="0" BORDER="0">','<tr><td>','','</td><td>','</td></tr>','</table>')
}

/**
 * @properties={typeid:24,uuid:"D514FE88-E275-4820-9F8E-6399388C74A0"}
 */
function csv() {
	exportaExcel('.csv','','','"',';','','')
}

/**
 * @properties={typeid:24,uuid:"9C497AB4-BAC4-4977-9684-9F3F3EF9F868"}
 * @AllowToRunInFind
 */
function preparaImpresion() {
	forms[form_impresion].controller.sort("capitulo asc, subcapitulo asc, rubro asc, cuenta asc, subcuenta asc")
	forms[form_impresion].elements.lbl_titulo.text += ' - ' + forms[form_impresion].fmeses[pmes_hasta-1] + ' ' + panio_hasta +'  EN '+ gmonedaconsulta_to_monedas.descripcion
	var hoy = new Date()
	forms[form_impresion].elements.lbl_fecha.text = '<html>Fecha de Emision: <b>' + utils.dateFormat(hoy,'dd-MM-yyyy') + ' </b> Hora:  <b>' + utils.dateFormat(hoy,'HH:mm:ss')+' </b> </html>'
	/** @type {JSFoundSet<db:/contable/numcon>}*/
	var $numcon = databaseManager.getFoundSet('contable','numcon')
	$numcon.find()
	$numcon.anio 	= panio_hasta
	$numcon.mes 	= pmes_hasta
	if ($numcon.search()!= 0)
		forms[form_impresion].elements.lbl_provisorio.visible = !$numcon.marca_cierre
	else
	{
		application.output('No existe en numcon. Mes: '+ pmes_hasta + ' Año: '+ panio_hasta)
		forms[form_impresion].elements.lbl_provisorio.visible = false
	}
}

/**
 * Handle changed data.
 *
 * @param {String} oldValue old value
 * @param {String} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"9C12EF69-9C75-47C4-8523-6F0C6C51B2FA"}
 */
function onDataChangeFecha(oldValue, newValue, event) {
	globals.gMes 	= newValue.substring(0,newValue.indexOf('|'))
	globals.gAnio	= newValue.substring(newValue.indexOf('|')+1,newValue.length)
	
	fAsientoCierre = 0  // el default es sin asiento de cierre
	if (globals.gMes == gejercicio_to_ejercicios.fecha_fin.getMonth() && globals.gAnio == gejercicio_to_ejercicios.fecha_fin.getFullYear())
	{
		elements.lbl_cierre.visible = true
		elements.fld_cierre.visible = true
	}
	else
	{
		elements.lbl_cierre.visible = false
		elements.fld_cierre.visible = false
	}
	return true
}
